[INFO] cloning repository https://github.com/JonCooperWorks/dyson
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/JonCooperWorks/dyson" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FJonCooperWorks%2Fdyson", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FJonCooperWorks%2Fdyson'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] b7dda614f3365975f23288ada02c858813fce6c7
[INFO] testing JonCooperWorks/dyson against master#1f7f8ea0721a3b1eb73e6c6d25cccb371434b320 for pr-154065
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FJonCooperWorks%2Fdyson" "/workspace/builds/worker-4-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-4-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/JonCooperWorks/dyson
[INFO] finished tweaking git repo https://github.com/JonCooperWorks/dyson
[INFO] tweaked toml for git repo https://github.com/JonCooperWorks/dyson written to /workspace/builds/worker-4-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/JonCooperWorks/dyson on toolchain 1f7f8ea0721a3b1eb73e6c6d25cccb371434b320
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1f7f8ea0721a3b1eb73e6c6d25cccb371434b320" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/JonCooperWorks/dyson already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1f7f8ea0721a3b1eb73e6c6d25cccb371434b320" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded erasable v1.3.0
[INFO] [stderr]   Downloaded teloxide-macros v0.8.0
[INFO] [stderr]   Downloaded takecell v0.1.1
[INFO] [stderr]   Downloaded rc-box v1.3.0
[INFO] [stderr]   Downloaded dptree v0.3.0
[INFO] [stderr]   Downloaded teloxide v0.13.0
[INFO] [stderr]   Downloaded quinn-proto v0.11.14
[INFO] [stderr]   Downloaded teloxide-core v0.10.1
[INFO] [stderr]   Downloaded aquamarine v0.5.0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1f7f8ea0721a3b1eb73e6c6d25cccb371434b320" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] a7cbbdbc2466bdb3c953dc716c29156894a3265c582a058cf68450de724b0ea4
[INFO] running `Command { std: "docker" "start" "-a" "a7cbbdbc2466bdb3c953dc716c29156894a3265c582a058cf68450de724b0ea4", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "a7cbbdbc2466bdb3c953dc716c29156894a3265c582a058cf68450de724b0ea4", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "a7cbbdbc2466bdb3c953dc716c29156894a3265c582a058cf68450de724b0ea4", kill_on_drop: false }`
[INFO] [stdout] a7cbbdbc2466bdb3c953dc716c29156894a3265c582a058cf68450de724b0ea4
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1f7f8ea0721a3b1eb73e6c6d25cccb371434b320" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 1eccca947afd920a33169f31669e1026ab41fb0f59330b01b30b2f0dd9e0b81e
[INFO] running `Command { std: "docker" "start" "-a" "1eccca947afd920a33169f31669e1026ab41fb0f59330b01b30b2f0dd9e0b81e", kill_on_drop: false }`
[INFO] [stderr]    Compiling syn v2.0.117
[INFO] [stderr]    Compiling smallvec v1.15.1
[INFO] [stderr]    Compiling futures-core v0.3.32
[INFO] [stderr]    Compiling bytes v1.11.1
[INFO] [stderr]    Compiling once_cell v1.21.4
[INFO] [stderr]    Compiling futures-sink v0.3.32
[INFO] [stderr]    Compiling futures-task v0.3.32
[INFO] [stderr]    Compiling libc v0.2.183
[INFO] [stderr]    Compiling cc v1.2.57
[INFO] [stderr]    Compiling futures-io v0.3.32
[INFO] [stderr]    Compiling slab v0.4.12
[INFO] [stderr]    Compiling syn v1.0.109
[INFO] [stderr]    Compiling zerocopy v0.8.42
[INFO] [stderr]    Compiling strsim v0.10.0
[INFO] [stderr]    Compiling hashbrown v0.16.1
[INFO] [stderr]    Compiling rustls v0.21.12
[INFO] [stderr]    Compiling aho-corasick v1.1.4
[INFO] [stderr]    Compiling tracing-core v0.1.36
[INFO] [stderr]    Compiling futures-channel v0.3.32
[INFO] [stderr]    Compiling ipnet v2.12.0
[INFO] [stderr]    Compiling regex-syntax v0.8.10
[INFO] [stderr]    Compiling mime_guess v2.0.5
[INFO] [stderr]    Compiling erasable v1.3.0
[INFO] [stderr]    Compiling crossbeam-utils v0.8.21
[INFO] [stderr]    Compiling getrandom v0.4.2
[INFO] [stderr]    Compiling rustls v0.23.37
[INFO] [stderr]    Compiling proc-macro-error-attr v1.0.4
[INFO] [stderr]    Compiling sync_wrapper v1.0.2
[INFO] [stderr]    Compiling include_dir_macros v0.7.4
[INFO] [stderr]    Compiling either v1.15.0
[INFO] [stderr]    Compiling http v0.2.12
[INFO] [stderr]    Compiling http v1.4.0
[INFO] [stderr]    Compiling indexmap v2.13.0
[INFO] [stderr]    Compiling convert_case v0.4.0
[INFO] [stderr]    Compiling crossbeam-epoch v0.9.18
[INFO] [stderr]    Compiling include_dir v0.7.4
[INFO] [stderr]    Compiling itertools v0.10.5
[INFO] [stderr]    Compiling rc-box v1.3.0
[INFO] [stderr]    Compiling chrono v0.4.44
[INFO] [stderr]    Compiling webpki-roots v1.0.6
[INFO] [stderr]    Compiling bstr v1.12.1
[INFO] [stderr]    Compiling takecell v0.1.1
[INFO] [stderr]    Compiling heck v0.4.1
[INFO] [stderr]    Compiling errno v0.3.14
[INFO] [stderr]    Compiling parking_lot_core v0.9.12
[INFO] [stderr]    Compiling mio v1.1.1
[INFO] [stderr]    Compiling signal-hook-registry v1.4.8
[INFO] [stderr]    Compiling socket2 v0.6.3
[INFO] [stderr]    Compiling ring v0.17.14
[INFO] [stderr]    Compiling parking_lot v0.12.5
[INFO] [stderr]    Compiling getrandom v0.2.17
[INFO] [stderr]    Compiling http-body v1.0.1
[INFO] [stderr]    Compiling http-body v0.4.6
[INFO] [stderr]    Compiling socket2 v0.5.10
[INFO] [stderr]    Compiling libsqlite3-sys v0.30.1
[INFO] [stderr]    Compiling getrandom v0.3.4
[INFO] [stderr]    Compiling iri-string v0.7.10
[INFO] [stderr]    Compiling take_mut v0.2.2
[INFO] [stderr]    Compiling rand_core v0.9.5
[INFO] [stderr]    Compiling http-body-util v0.1.3
[INFO] [stderr]    Compiling uuid v1.22.0
[INFO] [stderr]    Compiling crossbeam-deque v0.8.6
[INFO] [stderr]    Compiling regex-automata v0.4.14
[INFO] [stderr]    Compiling tracing-log v0.2.0
[INFO] [stderr]    Compiling fallible-iterator v0.3.0
[INFO] [stderr]    Compiling fallible-streaming-iterator v0.1.9
[INFO] [stderr]    Compiling darling_core v0.13.4
[INFO] [stderr]    Compiling proc-macro-error v1.0.4
[INFO] [stderr]    Compiling teloxide-macros v0.8.0
[INFO] [stderr]    Compiling matchers v0.2.0
[INFO] [stderr]    Compiling globset v0.4.18
[INFO] [stderr]    Compiling regex v1.12.3
[INFO] [stderr]    Compiling ignore v0.4.25
[INFO] [stderr]    Compiling synstructure v0.13.2
[INFO] [stderr]    Compiling darling_macro v0.13.4
[INFO] [stderr]    Compiling sct v0.7.1
[INFO] [stderr]    Compiling rustls-webpki v0.101.7
[INFO] [stderr]    Compiling rustls-webpki v0.103.9
[INFO] [stderr]    Compiling ahash v0.8.12
[INFO] [stderr]    Compiling ppv-lite86 v0.2.21
[INFO] [stderr]    Compiling darling v0.13.4
[INFO] [stderr]    Compiling serde_with_macros v1.5.2
[INFO] [stderr]    Compiling hashbrown v0.14.5
[INFO] [stderr]    Compiling zerofrom-derive v0.1.6
[INFO] [stderr]    Compiling tokio-macros v2.6.1
[INFO] [stderr]    Compiling yoke-derive v0.8.1
[INFO] [stderr]    Compiling zerovec-derive v0.11.2
[INFO] [stderr]    Compiling futures-macro v0.3.32
[INFO] [stderr]    Compiling displaydoc v0.2.5
[INFO] [stderr]    Compiling tracing-attributes v0.1.31
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling tokio v1.50.0
[INFO] [stderr]    Compiling pin-project-internal v1.1.11
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[INFO] [stderr]    Compiling derive_more v0.99.20
[INFO] [stderr]    Compiling hashlink v0.9.1
[INFO] [stderr]    Compiling futures-util v0.3.32
[INFO] [stderr]    Compiling rand_chacha v0.9.0
[INFO] [stderr]    Compiling clap_derive v4.6.0
[INFO] [stderr]    Compiling async-stream-impl v0.3.6
[INFO] [stderr]    Compiling aquamarine v0.5.0
[INFO] [stderr]    Compiling zerofrom v0.1.6
[INFO] [stderr]    Compiling yoke v0.8.1
[INFO] [stderr]    Compiling zerovec v0.11.5
[INFO] [stderr]    Compiling zerotrie v0.2.3
[INFO] [stderr]    Compiling thiserror-impl v2.0.18
[INFO] [stderr]    Compiling async-stream v0.3.6
[INFO] [stderr]    Compiling rand v0.9.2
[INFO] [stderr]    Compiling tracing v0.1.44
[INFO] [stderr]    Compiling pin-project v1.1.11
[INFO] [stderr]    Compiling async-trait v0.1.89
[INFO] [stderr]    Compiling thiserror v1.0.69
[INFO] [stderr]    Compiling tracing-subscriber v0.3.23
[INFO] [stderr]    Compiling tinystr v0.8.2
[INFO] [stderr]    Compiling potential_utf v0.1.4
[INFO] [stderr]    Compiling icu_collections v2.1.1
[INFO] [stderr]    Compiling icu_locale_core v2.1.1
[INFO] [stderr]    Compiling clap v4.6.0
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling thiserror v2.0.18
[INFO] [stderr]    Compiling icu_provider v2.1.1
[INFO] [stderr]    Compiling icu_normalizer v2.1.1
[INFO] [stderr]    Compiling icu_properties v2.1.2
[INFO] [stderr]    Compiling futures-executor v0.3.32
[INFO] [stderr]    Compiling futures v0.3.32
[INFO] [stderr]    Compiling dptree v0.3.0
[INFO] [stderr]    Compiling serde_urlencoded v0.7.1
[INFO] [stderr]    Compiling serde_with v1.14.0
[INFO] [stderr]    Compiling idna_adapter v1.2.1
[INFO] [stderr]    Compiling idna v1.1.0
[INFO] [stderr]    Compiling url v2.5.8
[INFO] [stderr]    Compiling tokio-util v0.7.18
[INFO] [stderr]    Compiling tokio-rustls v0.24.1
[INFO] [stderr]    Compiling hyper v1.8.1
[INFO] [stderr]    Compiling tokio-rustls v0.26.4
[INFO] [stderr]    Compiling tower v0.5.3
[INFO] [stderr]    Compiling tokio-stream v0.1.18
[INFO] [stderr]    Compiling h2 v0.3.27
[INFO] [stderr]    Compiling tower-http v0.6.8
[INFO] [stderr]    Compiling hyper-util v0.1.20
[INFO] [stderr]    Compiling rusqlite v0.32.1
[INFO] [stderr]    Compiling hyper-rustls v0.27.7
[INFO] [stderr]    Compiling reqwest v0.12.28
[INFO] [stderr]    Compiling hyper v0.14.32
[INFO] [stderr]    Compiling hyper-rustls v0.24.2
[INFO] [stderr]    Compiling reqwest v0.11.27
[INFO] [stderr]    Compiling teloxide-core v0.10.1
[INFO] [stderr]    Compiling teloxide v0.13.0
[INFO] [stderr]    Compiling dyson v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: constant `PROFILE_DEFAULT` is never used
[INFO] [stdout]    --> src/sandbox/os.rs:124:7
[INFO] [stdout]     |
[INFO] [stdout] 124 | const PROFILE_DEFAULT: &str = "\
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PROFILE_STRICT` is never used
[INFO] [stdout]    --> src/sandbox/os.rs:138:7
[INFO] [stdout]     |
[INFO] [stdout] 138 | const PROFILE_STRICT: &str = "\
[INFO] [stdout]     |       ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 43s
[INFO] running `Command { std: "docker" "inspect" "1eccca947afd920a33169f31669e1026ab41fb0f59330b01b30b2f0dd9e0b81e", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "1eccca947afd920a33169f31669e1026ab41fb0f59330b01b30b2f0dd9e0b81e", kill_on_drop: false }`
[INFO] [stdout] 1eccca947afd920a33169f31669e1026ab41fb0f59330b01b30b2f0dd9e0b81e
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1f7f8ea0721a3b1eb73e6c6d25cccb371434b320" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 5ae4a3e36ebb9cfe15f309eb4cf672ad8007e93c71192bf7075d0c9b838b8ade
[INFO] running `Command { std: "docker" "start" "-a" "5ae4a3e36ebb9cfe15f309eb4cf672ad8007e93c71192bf7075d0c9b838b8ade", kill_on_drop: false }`
[INFO] [stderr]    Compiling tower-http v0.6.8
[INFO] [stderr]    Compiling rustix v1.1.4
[INFO] [stderr]    Compiling linux-raw-sys v0.12.1
[INFO] [stderr]    Compiling rusqlite v0.32.1
[INFO] [stderr]    Compiling reqwest v0.12.28
[INFO] [stderr]    Compiling dyson v0.1.0 (/opt/rustwide/workdir)
[INFO] [stderr]    Compiling tempfile v3.27.0
[INFO] [stdout] warning: constant `PROFILE_DEFAULT` is never used
[INFO] [stdout]    --> src/sandbox/os.rs:124:7
[INFO] [stdout]     |
[INFO] [stdout] 124 | const PROFILE_DEFAULT: &str = "\
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PROFILE_STRICT` is never used
[INFO] [stdout]    --> src/sandbox/os.rs:138:7
[INFO] [stdout]     |
[INFO] [stdout] 138 | const PROFILE_STRICT: &str = "\
[INFO] [stdout]     |       ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 32.08s
[INFO] running `Command { std: "docker" "inspect" "5ae4a3e36ebb9cfe15f309eb4cf672ad8007e93c71192bf7075d0c9b838b8ade", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "5ae4a3e36ebb9cfe15f309eb4cf672ad8007e93c71192bf7075d0c9b838b8ade", kill_on_drop: false }`
[INFO] [stdout] 5ae4a3e36ebb9cfe15f309eb4cf672ad8007e93c71192bf7075d0c9b838b8ade
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1f7f8ea0721a3b1eb73e6c6d25cccb371434b320" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] b87cf1d874dc4aeb04f4a3179f2a8ebdeda0f8d5b93d9bbb66be8d87c19e47ed
[INFO] running `Command { std: "docker" "start" "-a" "b87cf1d874dc4aeb04f4a3179f2a8ebdeda0f8d5b93d9bbb66be8d87c19e47ed", kill_on_drop: false }`
[INFO] [stderr] warning: constant `PROFILE_DEFAULT` is never used
[INFO] [stderr]    --> src/sandbox/os.rs:124:7
[INFO] [stderr]     |
[INFO] [stderr] 124 | const PROFILE_DEFAULT: &str = "\
[INFO] [stderr]     |       ^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: constant `PROFILE_STRICT` is never used
[INFO] [stderr]    --> src/sandbox/os.rs:138:7
[INFO] [stderr]     |
[INFO] [stderr] 138 | const PROFILE_STRICT: &str = "\
[INFO] [stderr]     |       ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: `dyson` (lib) generated 2 warnings
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.44s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/dyson-6529b8797eb35b38)
[INFO] [stdout] 
[INFO] [stdout] running 372 tests
[INFO] [stdout] test agent::tests::token_budget_reset ... ok
[INFO] [stdout] test agent::tests::token_budget_reset_clears_input_tokens ... ok
[INFO] [stdout] test agent::tests::retryable_error_detection ... ok
[INFO] [stdout] test agent::tests::token_budget_records_and_enforces ... ok
[INFO] [stdout] test agent::stream_handler::tests::error_event_stops_processing ... ok
[INFO] [stdout] test agent::stream_handler::tests::thinking_deltas_are_not_sent_to_output ... ok
[INFO] [stdout] test agent::stream_handler::tests::text_only_response ... ok
[INFO] [stdout] test agent::tests::tool_mode_execute_vs_observe ... ok
[INFO] [stdout] test agent::tests::nudge_message_contains_usage_info ... ok
[INFO] [stdout] test agent::tests::token_budget_unlimited_never_fails ... ok
[INFO] [stdout] test agent::stream_handler::tests::text_plus_tool_call ... ok
[INFO] [stdout] test agent::tests::token_budget_unlimited_by_default ... ok
[INFO] [stdout] test agent::tests::token_budget_tracks_input_tokens ... ok
[INFO] [stdout] test auth::bearer::tests::generate_produces_64_hex_chars ... ok
[INFO] [stdout] test auth::bearer::tests::generate_produces_unique_tokens ... ok
[INFO] [stdout] test agent::tests::compact_on_empty_history_is_noop ... ok
[INFO] [stdout] test agent::tests::simple_text_response ... ok
[INFO] [stdout] test agent::tests::compact_resets_token_budget ... ok
[INFO] [stdout] test agent::tests::auto_compaction_triggers_on_threshold ... ok
[INFO] [stdout] test agent::tests::internal_tools_provider_skips_tool_execution ... ok
[INFO] [stdout] test agent::tests::tool_output_files_dispatched_via_send_file ... ok
[INFO] [stdout] test auth::api_key::tests::validate_rejects_wrong_key ... ok
[INFO] [stdout] test auth::bearer::tests::validate_accepts_matching_token ... ok
[INFO] [stdout] test auth::bearer::tests::validate_rejects_non_bearer_scheme ... ok
[INFO] [stdout] test auth::bearer::tests::validate_rejects_wrong_token ... ok
[INFO] [stdout] test auth::credential::tests::debug_redacts ... ok
[INFO] [stdout] test auth::credential::tests::expose_returns_value ... ok
[INFO] [stdout] test auth::credential::tests::is_empty ... ok
[INFO] [stdout] test auth::composite::tests::validate_first_success_wins ... ok
[INFO] [stdout] test auth::composite::tests::validate_all_fail ... ok
[INFO] [stdout] test agent::tests::token_budget_stops_agent_loop ... ok
[INFO] [stdout] test auth::bearer::tests::validate_rejects_missing_header ... ok
[INFO] [stdout] test auth::credential::tests::zeroize_on_drop ... ok
[INFO] [stdout] test auth::no_auth::tests::validate_accepts_all ... ok
[INFO] [stdout] test auth::tests::auth_info_builder ... ok
[INFO] [stdout] test auth::api_key::tests::apply_adds_custom_header ... ok
[INFO] [stdout] test agent::tests::tool_call_loop ... ok
[INFO] [stdout] test auth::tracing_auth::tests::delegates_validate_failure ... ok
[INFO] [stdout] test agent::tests::tool_output_no_files_means_no_send_file ... ok
[INFO] [stdout] test auth::tracing_auth::tests::delegates_apply ... ok
[INFO] [stdout] test auth::composite::tests::empty_composite_apply_is_noop ... ok
[INFO] [stdout] test auth::static_headers::tests::applies_all_headers ... ok
[INFO] [stdout] test auth::composite::tests::apply_chains_all_layers ... ok
[INFO] [stdout] test auth::api_key::tests::anthropic_factory ... ok
[INFO] [stdout] test auth::no_auth::tests::apply_passes_through ... ok
[INFO] [stdout] test auth::bearer::tests::apply_adds_bearer_header ... ok
[INFO] [stdout] test auth::tests::default_validate_rejects ... ok
[INFO] [stdout] test auth::tracing_auth::tests::delegates_validate_success ... ok
[INFO] [stdout] test auth::api_key::tests::validate_accepts_matching_key ... ok
[INFO] [stdout] test auth::static_headers::tests::empty_headers_is_noop ... ok
[INFO] [stdout] test chat_history::in_memory::tests::load_nonexistent ... ok
[INFO] [stdout] test chat_history::in_memory::tests::rotate_clears ... ok
[INFO] [stdout] test chat_history::in_memory::tests::save_and_load ... ok
[INFO] [stdout] test config::loader::tests::defaults_when_no_config ... ok
[INFO] [stdout] test config::loader::tests::agent_model_overrides_provider ... ok
[INFO] [stdout] test config::loader::tests::env_fallback_blocked_for_custom_base_url_provider ... ok
[INFO] [stdout] test config::loader::tests::env_fallback_allowed_for_default_base_url ... ok
[INFO] [stdout] test config::loader::tests::explicit_key_with_custom_base_url_works ... ok
[INFO] [stdout] test config::loader::tests::controller_config_is_opaque ... ok
[INFO] [stdout] test config::loader::tests::literal_and_reference_both_work ... ok
[INFO] [stdout] test config::loader::tests::secret_resolution_in_controller ... ok
[INFO] [stdout] test config::loader::tests::unknown_provider_name_warns ... ok
[INFO] [stdout] test config::loader::tests::unresolvable_secret_skips_provider ... ok
[INFO] [stdout] test config::migrate::tests::already_current_version ... ok
[INFO] [stdout] test config::migrate::tests::future_version_errors ... ok
[INFO] [stdout] test config::migrate::tests::get_path_missing ... ok
[INFO] [stdout] test config::migrate::tests::get_path_null_is_none ... ok
[INFO] [stdout] test config::migrate::tests::get_path_simple ... ok
[INFO] [stdout] test config::migrate::tests::remove_path_returns_value ... ok
[INFO] [stdout] test config::migrate::tests::step_bail_if_errors ... ok
[INFO] [stdout] test config::migrate::tests::step_bail_if_passes_when_missing ... ok
[INFO] [stdout] test config::migrate::tests::step_copy_keeps_source ... ok
[INFO] [stdout] test config::migrate::tests::step_move_removes_source ... ok
[INFO] [stdout] test config::loader::tests::parse_minimal_json ... ok
[INFO] [stdout] test config::loader::tests::parse_full_json ... ok
[INFO] [stdout] test config::migrate::tests::step_skip_if_skips_remaining ... ok
[INFO] [stdout] test config::migrate::tests::v0_to_current_dyson_json ... ok
[INFO] [stdout] test config::migrate::tests::step_rename_wrap_array ... ok
[INFO] [stdout] test config::migrate::tests::v0_to_current_dyson_local_json ... ok
[INFO] [stdout] test config::migrate::tests::v0_to_current_realistic_multi_provider ... ok
[INFO] [stdout] test config::migrate::tests::v0_to_v1_handles_missing_optional_fields ... ok
[INFO] [stdout] test chat_history::disk::tests::load_nonexistent_returns_empty ... ok
[INFO] [stdout] test config::migrate::tests::v0_to_current_full_chain ... ok
[INFO] [stdout] test config::migrate::tests::v0_to_v1_moves_inline_provider ... ok
[INFO] [stdout] test config::migrate::tests::v0_to_v1_handles_no_agent ... ok
[INFO] [stdout] test config::migrate::tests::v1_to_v2_already_array_preserved ... ok
[INFO] [stdout] test chat_history::disk::tests::rotate_preserves_old_and_clears_current ... ok
[INFO] [stdout] test config::migrate::tests::v1_to_v2_no_model_field_is_fine ... ok
[INFO] [stdout] test config::migrate::tests::v1_to_v2_realistic_config ... ok
[INFO] [stdout] test config::migrate::tests::v1_to_v2_wraps_model_in_array ... ok
[INFO] [stdout] test controller::telegram::tests::bold ... ok
[INFO] [stdout] test controller::telegram::tests::blockquote ... ok
[INFO] [stdout] test controller::telegram::tests::code_content_not_formatted ... ok
[INFO] [stdout] test controller::telegram::tests::bold_underscore ... ok
[INFO] [stdout] test controller::telegram::tests::combined_formatting ... ok
[INFO] [stdout] test chat_history::disk::tests::new_save_after_rotate ... ok
[INFO] [stdout] test controller::telegram::tests::empty_string ... ok
[INFO] [stdout] test controller::telegram::tests::fenced_code_block_escapes_html ... ok
[INFO] [stdout] test chat_history::disk::tests::rotate_nonexistent_is_ok ... ok
[INFO] [stdout] test controller::telegram::tests::heading ... ok
[INFO] [stdout] test config::hot_reload::tests::no_change_returns_false ... ok
[INFO] [stdout] test chat_history::disk::tests::save_and_load ... ok
[INFO] [stdout] test controller::telegram::tests::link_with_ampersand ... ok
[INFO] [stdout] test controller::telegram::tests::horizontal_rule ... ok
[INFO] [stdout] test controller::telegram::tests::inline_code ... ok
[INFO] [stdout] test controller::telegram::tests::mid_word_underscores_preserved ... ok
[INFO] [stdout] test controller::telegram::tests::multibyte_utf8_emoji ... ok
[INFO] [stdout] test controller::telegram::tests::italic ... ok
[INFO] [stdout] test controller::telegram::tests::multiline_message ... ok
[INFO] [stdout] test controller::telegram::tests::link ... ok
[INFO] [stdout] test controller::telegram::tests::plain_text_html_escaped ... ok
[INFO] [stdout] test controller::telegram::tests::multibyte_utf8_with_formatting ... ok
[INFO] [stdout] test controller::telegram::tests::plain_text_passthrough ... ok
[INFO] [stdout] test config::migrate::tests::v0_to_v1_secret_reference_preserved ... ok
[INFO] [stdout] test controller::telegram::tests::fenced_code_block ... ok
[INFO] [stdout] test config::migrate::tests::v0_to_v1_skips_when_providers_exist ... ok
[INFO] [stdout] test error::tests::error_display_messages ... ok
[INFO] [stdout] test controller::telegram::tests::unclosed_backtick_kept ... ok
[INFO] [stdout] test error::tests::io_error_converts ... ok
[INFO] [stdout] test llm::anthropic::tests::anthropic_serialization_tool_result ... ok
[INFO] [stdout] test llm::anthropic::tests::anthropic_serialization_tool_use ... ok
[INFO] [stdout] test llm::anthropic::tests::anthropic_serialization_user ... ok
[INFO] [stdout] test llm::anthropic::tests::ignores_ping_and_message_start ... ok
[INFO] [stdout] test llm::anthropic::tests::handles_partial_lines ... ok
[INFO] [stdout] test llm::anthropic::tests::line_buffer_accepts_large_but_valid_input ... ok
[INFO] [stdout] test llm::anthropic::tests::message_delta_without_usage_has_none_tokens ... ok
[INFO] [stdout] test llm::anthropic::tests::message_delta_includes_output_tokens ... ok
[INFO] [stdout] test llm::anthropic::tests::parse_text_delta ... ok
[INFO] [stdout] test llm::anthropic::tests::parse_error_event ... ok
[INFO] [stdout] test llm::anthropic::tests::parse_tool_use_lifecycle ... ok
[INFO] [stdout] test llm::anthropic::tests::parse_thinking_block_as_thinking_delta ... ok
[INFO] [stdout] test llm::anthropic::tests::parse_tool_use_stop_reason ... ok
[INFO] [stdout] test llm::claude_code::tests::build_args_always_includes_skip_permissions ... ok
[INFO] [stdout] test llm::claude_code::tests::build_args_forwards_extra_mcp_configs ... ok
[INFO] [stdout] test llm::claude_code::tests::build_args_includes_model_and_system_prompt ... ok
[INFO] [stdout] test llm::claude_code::tests::build_args_includes_mcp_config ... ok
[INFO] [stdout] test llm::claude_code::tests::error_result_yields_error ... ok
[INFO] [stdout] test agent::tests::compact_replaces_history_with_summary ... ok
[INFO] [stdout] test llm::claude_code::tests::no_result_event_yields_error_on_finalize ... ok
[INFO] [stdout] test llm::claude_code::tests::parse_result_event ... ok
[INFO] [stdout] test llm::claude_code::tests::parse_system_init_event ... ok
[INFO] [stdout] test llm::claude_code::tests::parse_stream_event_text_delta ... ok
[INFO] [stdout] test llm::claude_code::tests::thinking_blocks_cleared_between_turns ... ok
[INFO] [stdout] test llm::claude_code::tests::tool_buffers_cleared_between_turns ... ok
[INFO] [stdout] test llm::codex::tests::agent_message_yields_text_delta ... ok
[INFO] [stdout] test llm::codex::tests::build_args_bypasses_sandbox_when_flag_set ... ok
[INFO] [stdout] test llm::codex::tests::build_args_includes_mcp_url ... ok
[INFO] [stdout] test llm::codex::tests::build_args_includes_model ... ok
[INFO] [stdout] test llm::codex::tests::build_args_prompt_is_last ... ok
[INFO] [stdout] test llm::codex::tests::build_args_uses_full_auto_by_default ... ok
[INFO] [stdout] test llm::codex::tests::command_completed_yields_tool_use_complete ... ok
[INFO] [stdout] test llm::codex::tests::command_started_yields_tool_use_start ... ok
[INFO] [stdout] test llm::codex::tests::duplicate_turn_completed_ignored ... ok
[INFO] [stdout] test controller::telegram::tests::strikethrough ... ok
[INFO] [stdout] test llm::codex::tests::empty_agent_message_is_skipped ... ok
[INFO] [stdout] test llm::codex::tests::build_args_includes_system_prompt ... ok
[INFO] [stdout] test llm::codex::tests::build_args_skips_empty_system_prompt ... ok
[INFO] [stdout] test llm::codex::tests::invalid_json_ignored ... ok
[INFO] [stdout] test llm::codex::tests::mcp_tool_call_completed_yields_tool_use_complete ... ok
[INFO] [stdout] test llm::codex::tests::mcp_tool_call_started_yields_tool_use_start ... ok
[INFO] [stdout] test llm::codex::tests::no_turn_completed_yields_error_on_finalize ... ok
[INFO] [stdout] test llm::codex::tests::parse_thread_started ... ok
[INFO] [stdout] test llm::codex::tests::reasoning_yields_thinking_delta ... ok
[INFO] [stdout] test llm::codex::tests::stream_error_yields_error ... ok
[INFO] [stdout] test llm::codex::tests::turn_completed_yields_message_complete ... ok
[INFO] [stdout] test llm::codex::tests::turn_failed_yields_error ... ok
[INFO] [stdout] test llm::codex::tests::unknown_item_type_ignored ... ok
[INFO] [stdout] test llm::openai::tests::duplicate_finish_reason_emits_single_message_complete ... ok
[INFO] [stdout] test llm::openai::tests::message_to_openai_assistant_with_tool_calls ... ok
[INFO] [stdout] test llm::openai::tests::message_to_openai_tool_result ... ok
[INFO] [stdout] test llm::openai::tests::message_to_openai_user ... ok
[INFO] [stdout] test llm::openai::tests::parse_reasoning_content_as_thinking ... ok
[INFO] [stdout] test llm::openai::tests::parse_stop_finish_reason ... ok
[INFO] [stdout] test llm::openai::tests::parse_text_delta ... ok
[INFO] [stdout] test llm::openai::tests::parse_tool_call_lifecycle ... ok
[INFO] [stdout] test llm::anthropic::tests::line_buffer_rejects_oversized_input ... ok
[INFO] [stdout] test llm::openai::tests::too_many_tool_buffers_emits_error ... ok
[INFO] [stdout] test llm::openai::tests::line_buffer_rejects_oversized_input ... ok
[INFO] [stdout] test llm::registry::tests::all_canonical_names_returns_all ... ok
[INFO] [stdout] test llm::registry::tests::from_str_loose_matches_aliases ... ok
[INFO] [stdout] test llm::registry::tests::registry_covers_all_variants ... ok
[INFO] [stdout] test llm::tests::finalize_empty_json_includes_parse_error ... ok
[INFO] [stdout] test llm::tests::finalize_malformed_json_includes_parse_error ... ok
[INFO] [stdout] test llm::tests::finalize_valid_json ... ok
[INFO] [stdout] test llm::tests::multi_turn_includes_history ... ok
[INFO] [stdout] test llm::tests::single_message_is_just_text ... ok
[INFO] [stdout] test llm::registry::tests::no_duplicate_aliases ... ok
[INFO] [stdout] test llm::registry::tests::lookup_finds_all_providers ... ok
[INFO] [stdout] test llm::tests::sse_line_buffer_handles_partial_lines ... ok
[INFO] [stdout] test llm::tests::sse_line_buffer_preserves_multibyte_utf8_across_chunks ... ok
[INFO] [stdout] test llm::tests::sse_line_buffer_returns_done_sentinel ... ok
[INFO] [stdout] test auth::credential::tests::clone_works ... ok
[INFO] [stdout] test llm::tests::sse_line_buffer_skips_comments_and_events ... ok
[INFO] [stdout] test llm::claude_code::tests::finalize_after_result_produces_nothing ... ok
[INFO] [stdout] test llm::tests::tool_results_in_history ... ok
[INFO] [stdout] test config::migrate::tests::set_path_creates_intermediates ... ok
[INFO] [stdout] test message::tests::tool_result_uses_user_role ... ok
[INFO] [stdout] test message::tests::assistant_message_with_tool_use ... ok
[INFO] [stdout] test llm::claude_code::tests::success_result_yields_message_complete ... ok
[INFO] [stdout] test config::loader::tests::multiple_providers_parsed ... ok
[INFO] [stdout] test message::tests::user_message_shape ... ok
[INFO] [stdout] test sandbox::composite::tests::after_runs_all_sandboxes ... ok
[INFO] [stdout] test llm::tests::tools_appended_to_prompt ... ok
[INFO] [stdout] test sandbox::composite::tests::allows_chain_rewrites ... ok
[INFO] [stdout] test sandbox::composite::tests::empty_composite_allows_everything ... ok
[INFO] [stdout] test sandbox::composite::tests::deny_then_allow_stops_at_deny ... ok
[INFO] [stdout] test sandbox::composite::tests::non_matching_tool_passes_through ... ok
[INFO] [stdout] test sandbox::no_sandbox::tests::after_is_noop ... ok
[INFO] [stdout] test sandbox::no_sandbox::tests::always_allows ... ok
[INFO] [stdout] test sandbox::os::tests::after_does_not_truncate_small_output ... ok
[INFO] [stdout] test sandbox::os::tests::bwrap_default_profile ... ok
[INFO] [stdout] test sandbox::os::tests::bwrap_permissive_profile ... ok
[INFO] [stdout] test sandbox::os::tests::bwrap_strict_profile ... ok
[INFO] [stdout] test llm::anthropic::tests::parse_message_complete ... ok
[INFO] [stdout] test llm::codex::tests::finalize_after_turn_completed_produces_nothing ... ok
[INFO] [stdout] test llm::tests::sse_line_buffer_extracts_data_payloads ... ok
[INFO] [stdout] test sandbox::os::tests::after_truncates_oversized_output ... ok
[INFO] [stdout] test sandbox::os::tests::bwrap_escapes_working_dir_quotes ... ok
[INFO] [stdout] test sandbox::os::tests::non_bash_passes_through ... ok
[INFO] [stdout] test sandbox::os::tests::empty_command_is_denied ... ok
[INFO] [stdout] test sandbox::os::tests::seatbelt_escapes_quotes ... ok
[INFO] [stdout] test sandbox::os::tests::seatbelt_escapes_working_dir_quotes ... ok
[INFO] [stdout] test sandbox::os::tests::bwrap_escapes_quotes ... ok
[INFO] [stdout] test sandbox::os::tests::seatbelt_strict_profile ... ok
[INFO] [stdout] test secret::insecure_env::tests::resolves_set_var ... ok
[INFO] [stdout] test secret::insecure_env::tests::errors_on_missing_var ... ok
[INFO] [stdout] test secret::tests::deserialize_literal ... ok
[INFO] [stdout] test secret::tests::custom_resolver ... ok
[INFO] [stdout] test secret::tests::deserialize_reference ... ok
[INFO] [stdout] test secret::tests::resolve_missing_env_var_errors ... ok
[INFO] [stdout] test sandbox::composite::tests::deny_short_circuits ... ok
[INFO] [stdout] test secret::insecure_env::tests::scheme_is_insecure_env ... ok
[INFO] [stdout] test secret::insecure_env::tests::errors_on_empty_var ... ok
[INFO] [stdout] test secret::tests::resolve_reference ... ok
[INFO] [stdout] test sandbox::os::tests::wraps_bash_commands ... ok
[INFO] [stdout] test secret::tests::resolve_unknown_resolver_errors ... ok
[INFO] [stdout] test skill::builtin::tests::has_system_prompt ... ok
[INFO] [stdout] test skill::builtin::tests::has_builtin_tools ... ok
[INFO] [stdout] test sandbox::os::tests::missing_command_is_denied ... ok
[INFO] [stdout] test sandbox::os::tests::seatbelt_default_profile ... ok
[INFO] [stdout] test secret::tests::resolve_literal ... ok
[INFO] [stdout] test skill::local::tests::from_file_loads_real_file ... ok
[INFO] [stdout] test skill::builtin::tests::skill_name ... ok
[INFO] [stdout] test skill::local::tests::from_file_errors_on_missing_file ... ok
[INFO] [stdout] test secret::tests::resolve_or_fallback_uses_explicit ... ok
[INFO] [stdout] test skill::local::tests::parse_empty_body ... ok
[INFO] [stdout] test skill::local::tests::parse_empty_name_rejected ... ok
[INFO] [stdout] test secret::tests::resolve_or_fallback_uses_env ... ok
[INFO] [stdout] test skill::local::tests::parse_missing_closing_delimiter ... ok
[INFO] [stdout] test skill::local::tests::parse_no_description_defaults_to_empty ... ok
[INFO] [stdout] test skill::local::tests::parse_valid_skill ... ok
[INFO] [stdout] test skill::local::tests::parse_unknown_frontmatter_keys_ignored ... ok
[INFO] [stdout] test skill::local::tests::parse_missing_frontmatter ... ok
[INFO] [stdout] test skill::local::tests::parse_missing_name ... ok
[INFO] [stdout] test skill::mcp::serve::tests::initialize_returns_capabilities ... ok
[INFO] [stdout] test llm::tests::sse_line_buffer_rejects_oversized_input ... ok
[INFO] [stdout] test skill::mcp::serve::tests::tools_call_workspace_view ... ok
[INFO] [stdout] test tool::bash::tests::missing_command_field ... ok
[INFO] [stdout] test skill::mcp::serve::tests::tools_list_returns_workspace_tools ... ok
[INFO] [stdout] test tool::bash::tests::no_truncation_for_short_output ... ok
[INFO] [stdout] test skill::mcp::serve::tests::unknown_method_returns_error ... ok
[INFO] [stdout] test skill::mcp::serve::tests::tools_call_unknown_tool ... ok
[INFO] [stdout] test skill::mcp::serve::tests::server_binds_and_accepts ... ok
[INFO] [stdout] test tool::bash::tests::truncation ... ok
[INFO] [stdout] test tool::edit_file::tests::is_agent_only ... ok
[INFO] [stdout] test tool::list_files::tests::invalid_pattern ... ok
[INFO] [stdout] test tool::edit_file::tests::edit_rejects_multiple_matches ... ok
[INFO] [stdout] test llm::anthropic::tests::too_many_tool_buffers_emits_error ... ok
[INFO] [stdout] test tool::list_files::tests::is_agent_only ... ok
[INFO] [stdout] test skill::local::tests::skill_trait_provides_system_prompt ... ok
[INFO] [stdout] test tool::bash::tests::echo_hello ... ok
[INFO] [stdout] test tool::list_files::tests::list_files_glob ... ok
[INFO] [stdout] test tool::bash::tests::captures_stderr ... ok
[INFO] [stdout] test tool::read_file::tests::is_agent_only ... ok
[INFO] [stdout] test tool::search_files::tests::is_agent_only ... ok
[INFO] [stdout] test tool::edit_file::tests::edit_replaces_string ... ok
[INFO] [stdout] test tool::read_file::tests::read_simple_file ... ok
[INFO] [stdout] test tool::read_file::tests::read_with_offset_and_limit ... ok
[INFO] [stdout] test tool::send_file::tests::is_agent_only ... ok
[INFO] [stdout] test tool::send_file::tests::send_directory_fails ... ok
[INFO] [stdout] test tool::send_file::tests::send_existing_file ... ok
[INFO] [stdout] test tool::tests::success_has_no_files ... ok
[INFO] [stdout] test tool::send_file::tests::send_nonexistent_file ... ok
[INFO] [stdout] test tool::tests::error_has_no_files ... ok
[INFO] [stdout] test tool::tests::with_file_chains ... ok
[INFO] [stdout] test tool::tests::with_files_attaches_multiple ... ok
[INFO] [stdout] test tool::read_file::tests::read_nonexistent_file ... ok
[INFO] [stdout] test tool::web_search::tests::empty_query_returns_error ... ok
[INFO] [stdout] test tool::web_search::tests::formats_results ... ok
[INFO] [stdout] test sandbox::os::tests::linux_actually_blocks_network ... ok
[INFO] [stdout] test tool::web_search::tests::no_results_returns_message ... ok
[INFO] [stdout] test tool::web_search::tests::respects_num_results ... ok
[INFO] [stdout] test tool::web_search::tests::tool_schema_has_required_query ... ok
[INFO] [stdout] test tool::search_files::tests::search_invalid_regex ... ok
[INFO] [stdout] test tool::workspace_update::tests::append_over_limit_errors ... ok
[INFO] [stdout] test tool::tests::with_file_on_error_output ... ok
[INFO] [stdout] test tool::web_search::tests::truncate_long_string ... ok
[INFO] [stdout] test tool::web_search::tests::truncate_short_string ... ok
[INFO] [stdout] test tool::edit_file::tests::edit_rejects_no_match ... ok
[INFO] [stdout] test tool::search_files::tests::search_no_matches ... ok
[INFO] [stdout] test tool::search_files::tests::search_finds_matches ... ok
[INFO] [stdout] test tool::bash::tests::nonzero_exit_is_error ... ok
[INFO] [stdout] test tool::tests::with_file_attaches_single_file ... ok
[INFO] [stdout] test tool::workspace_update::tests::set_over_limit_errors ... ok
[INFO] [stdout] test tool::write_file::tests::is_agent_only ... ok
[INFO] [stdout] test tool::workspace_update::tests::set_under_limit_succeeds_with_usage ... ok
[INFO] [stdout] test tool::workspace_update::tests::unlimited_file_has_no_usage_stats ... ok
[INFO] [stdout] test util::tests::unix_epoch_is_1970_01_01 ... ok
[INFO] [stdout] test workspace::in_memory::tests::search_falls_back_on_invalid_regex ... ok
[INFO] [stdout] test tool::write_file::tests::overwrite_existing ... ok
[INFO] [stdout] test workspace::in_memory::tests::system_prompt_includes_user_profile ... ok
[INFO] [stdout] test workspace::in_memory::tests::skill_files_returns_empty ... ok
[INFO] [stdout] test workspace::in_memory::tests::with_limit_sets_char_limit ... ok
[INFO] [stdout] test tool::write_file::tests::write_creates_parent_dirs ... ok
[INFO] [stdout] test util::tests::known_date ... ok
[INFO] [stdout] test workspace::in_memory::tests::save_is_noop ... ok
[INFO] [stdout] test tool::write_file::tests::write_new_file ... ok
[INFO] [stdout] test workspace::migrate::tests::already_current_version_returns_false ... ok
[INFO] [stdout] test workspace::migrate::tests::future_version_errors ... ok
[INFO] [stdout] test workspace::migrate::tests::read_version_missing_file_returns_zero ... ok
[INFO] [stdout] test workspace::migrate::tests::read_write_version_roundtrip ... ok
[INFO] [stdout] test workspace::migrate::tests::step_bail_if_errors ... ok
[INFO] [stdout] test workspace::in_memory::tests::basic_operations ... ok
[INFO] [stdout] test workspace::migrate::tests::step_bail_if_passes_when_missing ... ok
[INFO] [stdout] test workspace::migrate::tests::step_rename_moves_file ... ok
[INFO] [stdout] test workspace::migrate::tests::step_rename_creates_parent_dirs ... ok
[INFO] [stdout] test workspace::memory_store::tests::remove_deletes_entry ... ok
[INFO] [stdout] test workspace::in_memory::tests::search_supports_regex ... ok
[INFO] [stdout] test workspace::memory_store::tests::upsert_replaces_content ... ok
[INFO] [stdout] test workspace::memory_store::tests::empty_query_returns_nothing ... ok
[INFO] [stdout] test workspace::memory_store::tests::index_and_search ... ok
[INFO] [stdout] test workspace::migrate::tests::step_rename_noop_when_missing ... ok
[INFO] [stdout] test workspace::memory_store::tests::search_no_results ... ok
[INFO] [stdout] test workspace::memory_store::tests::special_characters_in_query ... ok
[INFO] [stdout] test workspace::migrate::tests::v0_to_v1_idempotent ... ok
[INFO] [stdout] test workspace::migrate::tests::v0_to_v1_notes_dir_already_exists ... ok
[INFO] [stdout] test workspace::migrate::tests::step_skip_if_skips_remaining ... ok
[INFO] [stdout] test workspace::migrate::tests::v0_to_v1_creates_notes_dir ... ok
[INFO] [stdout] test workspace::in_memory::tests::list_and_search ... ok
[INFO] [stdout] test workspace::openclaw::tests::list_files_returns_sorted ... ok
[INFO] [stdout] test workspace::openclaw::tests::creates_skills_directory ... ok
[INFO] [stdout] test workspace::openclaw::tests::char_limit_returns_configured_limits ... ok
[INFO] [stdout] test workspace::openclaw::tests::creates_default_files ... ok
[INFO] [stdout] test workspace::openclaw::tests::nudge_interval_returns_default ... ok
[INFO] [stdout] test workspace::openclaw::tests::creates_user_md_default ... ok
[INFO] [stdout] test workspace::openclaw::tests::preserves_existing_files ... ok
[INFO] [stdout] test workspace::openclaw::tests::save_persists_to_disk ... ok
[INFO] [stdout] test workspace::openclaw::tests::skill_files_ignores_subdirectories ... ok
[INFO] [stdout] test workspace::openclaw::tests::search_falls_back_on_invalid_regex ... ok
[INFO] [stdout] test workspace::openclaw::tests::today_date_format ... ok
[INFO] [stdout] test workspace::openclaw::tests::memory_search_falls_back_to_regex ... ok
[INFO] [stdout] test tool::bash::tests::timeout_returns_error_output ... ok
[INFO] [stdout] test workspace::openclaw::tests::search_finds_matches ... ok
[INFO] [stdout] test workspace::tests::migrate_between_in_memory_workspaces ... ok
[INFO] [stdout] test workspace::tests::migrate_empty_workspace ... ok
[INFO] [stdout] test workspace::tests::export_files_returns_all_files ... ok
[INFO] [stdout] test workspace::tests::migrate_overwrites_existing_target_files ... ok
[INFO] [stdout] test workspace::openclaw::tests::system_prompt_composes_files ... ok
[INFO] [stdout] test workspace::openclaw::tests::journal_appends ... ok
[INFO] [stdout] test workspace::openclaw::tests::skill_files_returns_empty_when_no_skills ... ok
[INFO] [stdout] test workspace::openclaw::tests::memory_search_via_fts5 ... ok
[INFO] [stdout] test workspace::openclaw::tests::search_supports_regex ... ok
[INFO] [stdout] test workspace::tests::migrate_openclaw_to_in_memory ... ok
[INFO] [stdout] test workspace::tests::migrate_in_memory_to_openclaw ... ok
[INFO] [stdout] test workspace::tests::import_files_sets_content ... ok
[INFO] [stdout] test workspace::openclaw::tests::system_prompt_includes_user_profile ... ok
[INFO] [stdout] test workspace::openclaw::tests::skill_files_discovers_md_files ... ok
[INFO] [stdout] test config::hot_reload::tests::blocking_check_waits_for_debounce ... ok
[INFO] [stdout] test config::hot_reload::tests::change_is_debounced ... ok
[INFO] [stdout] test llm::anthropic::tests::tool_json_buffer_rejects_oversized_input ... ok
[INFO] [stdout] test llm::openai::tests::tool_json_buffer_rejects_oversized_input ... ok
[INFO] [stdout] test config::hot_reload::tests::rapid_writes_reset_debounce ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 372 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.85s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/dyson-8ee2b8c1aea8b96d)
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/agent_eval.rs (/opt/rustwide/target/debug/deps/agent_eval-1c1e6c86e6ddd973)
[INFO] [stdout] 
[INFO] [stdout] running 16 tests
[INFO] [stdout] test set_messages_restores_conversation ... ok
[INFO] [stdout] test conversation_persists_across_runs ... ok
[INFO] [stdout] test redirect_to_unknown_tool_is_handled_gracefully ... ok
[INFO] [stdout] test streaming_text_accumulates_correctly ... ok
[INFO] [stdout] test unknown_tool_returns_error ... ok
[INFO] [stdout] test simple_text_response_no_tools ... ok
[INFO] [stdout] test sandbox_deny_returns_error_to_llm ... ok
[INFO] [stdout] test sandbox_redirect_routes_to_different_tool ... ok
[INFO] [stdout] test clear_resets_conversation_history ... ok
[INFO] [stdout] test selective_sandbox_denies_specific_tools ... ok
[INFO] [stdout] test tool_error_is_reported_back ... ok
[INFO] [stdout] test concurrent_tool_calls_produce_all_results ... ok
[INFO] [stdout] test token_budget_halts_agent_after_limit ... ok
[INFO] [stdout] test multiple_tool_calls_in_one_turn ... ok
[INFO] [stdout] test multi_turn_builds_correct_history ... ok
[INFO] [stderr]      Running tests/security_regression.rs (/opt/rustwide/target/debug/deps/security_regression-9da152661e3dba7c)
[INFO] [stdout] test agent_stops_at_max_iterations ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 16 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.04s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 18 tests
[INFO] [stdout] test credential_debug_redacts_secret ... ok
[INFO] [stdout] test credential_zeroizes_on_drop ... ok
[INFO] [stdout] test mcp_server_bearer_token_is_64_hex_chars ... ok
[INFO] [stdout] test path_traversal_rejects_absolute_path ... ok
[INFO] [stdout] test path_traversal_allows_valid_paths ... ok
[INFO] [stdout] test telegram_rejects_config_without_allow_all_chats ... ok
[INFO] [stdout] test path_traversal_rejects_nested_parent_dir ... ok
[INFO] [stdout] test path_traversal_rejects_symlinks ... ok
[INFO] [stdout] test telegram_accepts_config_with_chat_ids ... ok
[INFO] [stdout] test mcp_server_generates_unique_tokens ... ok
[INFO] [stdout] test telegram_accepts_config_with_allow_all_chats ... ok
[INFO] [stdout] test path_traversal_rejects_parent_dir ... ok
[INFO] [stdout] test mcp_server_rejects_unauthorized_request ... ok
[INFO] [stdout] test config_rejects_file_larger_than_1mb ... ok
[INFO] [stdout] test mcp_server_rejects_wrong_bearer_token ... ok
[INFO] [stdout] test mcp_server_binds_to_loopback_only ... ok
[INFO] [stdout] test workspace_search_does_not_hang_on_pathological_regex ... ok
[INFO] [stdout] test bash_timeout_kills_process ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 18 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.52s
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests dyson
[INFO] [stdout] 
[INFO] [stdout] running 13 tests
[INFO] [stdout] test src/agent/mod.rs - agent::TokenBudget (line 91) ... ignored
[INFO] [stdout] test src/auth/credential.rs - auth::credential::Credential (line 27) ... ignored
[INFO] [stdout] test src/auth/mod.rs - auth::Auth (line 114) ... ignored
[INFO] [stdout] test src/auth/mod.rs - auth::Auth (line 123) ... ignored
[INFO] [stdout] test src/auth/tracing_auth.rs - auth::tracing_auth::TracingAuth (line 20) ... ignored
[INFO] [stdout] test src/config/mod.rs - config::ControllerConfig (line 160) ... ignored
[INFO] [stdout] test src/error.rs - error::DysonError (line 39) ... ignored
[INFO] [stdout] test src/llm/anthropic.rs - llm::anthropic::AnthropicClient::with_auth (line 174) ... ignored
[INFO] [stdout] test src/message.rs - message::Message::user (line 143) ... ignored
[INFO] [stdout] test src/sandbox/composite.rs - sandbox::composite::CompositeSandbox (line 90) ... ignored
[INFO] [stdout] test src/secret/mod.rs - secret::SecretRegistry (line 169) ... ignored
[INFO] [stdout] test src/secret/mod.rs - secret::SecretResolver (line 87) ... ignored
[INFO] [stdout] test src/tool/mod.rs - tool::Tool (line 94) ... ignored
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 13 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 1 test
[INFO] [stdout] test src/skill/mcp/serve.rs - skill::mcp::serve::McpHttpServer::new (line 247) ... ignored
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stdout] all doctests ran in 0.34s; merged doctests compilation took 0.34s
[INFO] running `Command { std: "docker" "inspect" "b87cf1d874dc4aeb04f4a3179f2a8ebdeda0f8d5b93d9bbb66be8d87c19e47ed", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "b87cf1d874dc4aeb04f4a3179f2a8ebdeda0f8d5b93d9bbb66be8d87c19e47ed", kill_on_drop: false }`
[INFO] [stdout] b87cf1d874dc4aeb04f4a3179f2a8ebdeda0f8d5b93d9bbb66be8d87c19e47ed
